/*
 * Licensed under the Apache License 2.0 (the "License").  You may not use
 * this file except in compliance with the License.  You can obtain a copy
 * in the file LICENSE in the source distribution or at
 * https://www.openssl.org/source/license.html
 */


#include <openssl/err.h>
#include "qat_bssl_err.h"

#ifndef OPENSSL_NO_ERR

static ERR_STRING_DATA QAT_str_functs[] = {
    {ERR_PACK(0, QAT_F_AES_GCM_TLS_CIPHER, 0), "aes_gcm_tls_cipher"},
    {ERR_PACK(0, QAT_F_BUILD_DECRYPT_OP_BUF, 0), "build_decrypt_op_buf"},
    {ERR_PACK(0, QAT_F_BUILD_ENCRYPT_OP_BUF, 0), "build_encrypt_op_buf"},
    {ERR_PACK(0, QAT_F_ENGINE_FINISH_BEFORE_FORK_HANDLER, 0),
     "engine_finish_before_fork_handler"},
    {ERR_PACK(0, QAT_F_ENGINE_INIT_CHILD_AT_FORK_HANDLER, 0),
     "engine_init_child_at_fork_handler"},
    {ERR_PACK(0, QAT_F_ENGINE_QAT, 0), "engine_qat"},
    {ERR_PACK(0, QAT_F_EVENT_POLL_FUNC, 0), "event_poll_func"},
    {ERR_PACK(0, QAT_F_MB_ECDH_COMPUTE_KEY, 0), "mb_ecdh_compute_key"},
    {ERR_PACK(0, QAT_F_MB_ECDH_GENERATE_KEY, 0), "mb_ecdh_generate_key"},
    {ERR_PACK(0, QAT_F_MB_ECDSA_DO_VERIFY, 0), "mb_ecdsa_do_verify"},
    {ERR_PACK(0, QAT_F_MB_ECDSA_SIGN, 0), "mb_ecdsa_sign"},
    {ERR_PACK(0, QAT_F_MB_ECDSA_SIGN_SETUP, 0), "mb_ecdsa_sign_setup"},
    {ERR_PACK(0, QAT_F_MB_ECDSA_SIGN_SIG, 0), "mb_ecdsa_sign_sig"},
    {ERR_PACK(0, QAT_F_MB_ECDSA_SM2_SIGN, 0), "mb_ecdsa_sm2_sign"},
    {ERR_PACK(0, QAT_F_MB_ECDSA_SM2_VERIFY, 0), "mb_ecdsa_sm2_verify"},
    {ERR_PACK(0, QAT_F_MB_ECDSA_VERIFY, 0), "mb_ecdsa_verify"},
    {ERR_PACK(0, QAT_F_MB_SM2_CTRL, 0), "mb_sm2_ctrl"},
    {ERR_PACK(0, QAT_F_MB_SM2_INIT, 0), "mb_sm2_init"},
    {ERR_PACK(0, QAT_F_MULTIBUFF_RSA_ADD_PADDING_PRIV_ENC, 0),
     "multibuff_rsa_add_padding_priv_enc"},
    {ERR_PACK(0, QAT_F_MULTIBUFF_RSA_ADD_PADDING_PUB_ENC, 0),
     "multibuff_rsa_add_padding_pub_enc"},
    {ERR_PACK(0, QAT_F_MULTIBUFF_RSA_PRIV_DEC, 0), "multibuff_rsa_priv_dec"},
    {ERR_PACK(0, QAT_F_MULTIBUFF_RSA_PRIV_ENC, 0), "multibuff_rsa_priv_enc"},
    {ERR_PACK(0, QAT_F_MULTIBUFF_RSA_PUB_DEC, 0), "multibuff_rsa_pub_dec"},
    {ERR_PACK(0, QAT_F_MULTIBUFF_RSA_PUB_ENC, 0), "multibuff_rsa_pub_enc"},
    {ERR_PACK(0, QAT_F_MULTIBUFF_VALIDATE_ECX_DERIVE, 0),
     "multibuff_validate_ecx_derive"},
    {ERR_PACK(0, QAT_F_MULTIBUFF_X25519_DERIVE, 0), "multibuff_x25519_derive"},
    {ERR_PACK(0, QAT_F_MULTIBUFF_X25519_KEYGEN, 0), "multibuff_x25519_keygen"},
    {ERR_PACK(0, QAT_F_POLL_INSTANCES, 0), "poll_instances"},
    {ERR_PACK(0, QAT_F_QAT_ADJUST_THREAD_AFFINITY, 0),
     "qat_adjust_thread_affinity"},
    {ERR_PACK(0, QAT_F_QAT_AES_CCM_CIPHER, 0), "qat_aes_ccm_cipher"},
    {ERR_PACK(0, QAT_F_QAT_AES_CCM_CLEANUP, 0), "qat_aes_ccm_cleanup"},
    {ERR_PACK(0, QAT_F_QAT_AES_CCM_CTRL, 0), "qat_aes_ccm_ctrl"},
    {ERR_PACK(0, QAT_F_QAT_AES_CCM_INIT, 0), "qat_aes_ccm_init"},
    {ERR_PACK(0, QAT_F_QAT_AES_CCM_SESSION_INIT, 0),
     "qat_aes_ccm_session_init"},
    {ERR_PACK(0, QAT_F_QAT_AES_CCM_TLS_CIPHER, 0), "qat_aes_ccm_tls_cipher"},
    {ERR_PACK(0, QAT_F_QAT_AES_GCM_CIPHER, 0), "qat_aes_gcm_cipher"},
    {ERR_PACK(0, QAT_F_QAT_AES_GCM_CLEANUP, 0), "qat_aes_gcm_cleanup"},
    {ERR_PACK(0, QAT_F_QAT_AES_GCM_CTRL, 0), "qat_aes_gcm_ctrl"},
    {ERR_PACK(0, QAT_F_QAT_AES_GCM_INIT, 0), "qat_aes_gcm_init"},
    {ERR_PACK(0, QAT_F_QAT_AES_GCM_SESSION_INIT, 0),
     "qat_aes_gcm_session_init"},
    {ERR_PACK(0, QAT_F_QAT_AES_GCM_TLS_CIPHER, 0), "qat_aes_gcm_tls_cipher"},
    {ERR_PACK(0, QAT_F_QAT_CHACHA20_POLY1305_CLEANUP, 0),
     "qat_chacha20_poly1305_cleanup"},
    {ERR_PACK(0, QAT_F_QAT_CHACHA20_POLY1305_CTRL, 0),
     "qat_chacha20_poly1305_ctrl"},
    {ERR_PACK(0, QAT_F_QAT_CHACHA20_POLY1305_DO_CIPHER, 0),
     "qat_chacha20_poly1305_do_cipher"},
    {ERR_PACK(0, QAT_F_QAT_CHACHA20_POLY1305_INIT, 0),
     "qat_chacha20_poly1305_init"},
    {ERR_PACK(0, QAT_F_QAT_CHACHA20_POLY1305_INIT_KEY_IV, 0),
     "qat_chacha20_poly1305_init_key_iv"},
    {ERR_PACK(0, QAT_F_QAT_CHACHA20_POLY1305_MAC_KEYGEN, 0),
     "qat_chacha20_poly1305_mac_keygen"},
    {ERR_PACK(0, QAT_F_QAT_CHACHA20_POLY1305_TLS_CIPHER, 0),
     "qat_chacha20_poly1305_tls_cipher"},
    {ERR_PACK(0, QAT_F_QAT_CHACHAPOLY_SESSION_DATA_INIT, 0),
     "qat_chachapoly_session_data_init"},
    {ERR_PACK(0, QAT_F_QAT_CHACHAPOLY_SETUP_OP_PARAMS, 0),
     "qat_chachapoly_setup_op_params"},
    {ERR_PACK(0, QAT_F_QAT_CREATE_SM4_CBC_CIPHER_METH, 0),
     "qat_create_sm4_cbc_cipher_meth"},
    {ERR_PACK(0, QAT_F_QAT_CREATE_SM4_CCM_CIPHER_METH, 0),
     "qat_create_sm4_ccm_cipher_meth"},
    {ERR_PACK(0, QAT_F_QAT_CRYPTO_CALLBACKFN, 0), "qat_crypto_callbackFn"},
    {ERR_PACK(0, QAT_F_QAT_DH_COMPUTE_KEY, 0), "qat_dh_compute_key"},
    {ERR_PACK(0, QAT_F_QAT_DH_GENERATE_KEY, 0), "qat_dh_generate_key"},
    {ERR_PACK(0, QAT_F_QAT_DSA_DO_SIGN, 0), "qat_dsa_do_sign"},
    {ERR_PACK(0, QAT_F_QAT_DSA_DO_VERIFY, 0), "qat_dsa_do_verify"},
    {ERR_PACK(0, QAT_F_QAT_DSA_SIGN_SETUP, 0), "qat_dsa_sign_setup"},
    {ERR_PACK(0, QAT_F_QAT_ECDH_COMPUTE_KEY, 0), "qat_ecdh_compute_key"},
    {ERR_PACK(0, QAT_F_QAT_ECDH_GENERATE_KEY, 0), "qat_ecdh_generate_key"},
    {ERR_PACK(0, QAT_F_QAT_ECDSA_DO_SIGN, 0), "qat_ecdsa_do_sign"},
    {ERR_PACK(0, QAT_F_QAT_ECDSA_DO_VERIFY, 0), "qat_ecdsa_do_verify"},
    {ERR_PACK(0, QAT_F_QAT_ECDSA_SIGN, 0), "qat_ecdsa_sign"},
    {ERR_PACK(0, QAT_F_QAT_ECDSA_VERIFY, 0), "qat_ecdsa_verify"},
    {ERR_PACK(0, QAT_F_QAT_ENGINE_CTRL, 0), "qat_engine_ctrl"},
    {ERR_PACK(0, QAT_F_QAT_ENGINE_ECDH_COMPUTE_KEY, 0),
     "qat_engine_ecdh_compute_key"},
    {ERR_PACK(0, QAT_F_QAT_FD_CLEANUP, 0), "qat_fd_cleanup"},
    {ERR_PACK(0, QAT_F_QAT_GET_DH_METHODS, 0), "qat_get_DH_methods"},
    {ERR_PACK(0, QAT_F_QAT_GET_DSA_METHODS, 0), "qat_get_DSA_methods"},
    {ERR_PACK(0, QAT_F_QAT_GET_EC_METHODS, 0), "qat_get_EC_methods"},
    {ERR_PACK(0, QAT_F_QAT_GET_RSA_METHODS, 0), "qat_get_RSA_methods"},
    {ERR_PACK(0, QAT_F_QAT_HKDF_CTRL, 0), "qat_hkdf_ctrl"},
    {ERR_PACK(0, QAT_F_QAT_HKDF_DERIVE, 0), "qat_hkdf_derive"},
    {ERR_PACK(0, QAT_F_QAT_HKDF_INIT, 0), "qat_hkdf_init"},
    {ERR_PACK(0, QAT_F_QAT_HKDF_PMETH, 0), "qat_hkdf_pmeth"},
    {ERR_PACK(0, QAT_F_QAT_HW_CREATE_SM3_METH, 0), "qat_hw_create_sm3_meth"},
    {ERR_PACK(0, QAT_F_QAT_HW_FINISH_INT, 0), "qat_hw_finish_int"},
    {ERR_PACK(0, QAT_F_QAT_HW_INIT, 0), "qat_hw_init"},
    {ERR_PACK(0, QAT_F_QAT_HW_SHA3_OFFLOAD, 0), "qat_hw_sha3_offload"},
    {ERR_PACK(0, QAT_F_QAT_HW_SM2_COMPUTE_Z_DIGEST, 0),
     "qat_hw_sm2_compute_z_digest"},
    {ERR_PACK(0, QAT_F_QAT_HW_SM3_CLEANUP, 0), "qat_hw_sm3_cleanup"},
    {ERR_PACK(0, QAT_F_QAT_HW_SM3_COPY, 0), "qat_hw_sm3_copy"},
    {ERR_PACK(0, QAT_F_QAT_HW_SM3_DO_OFFLOAD, 0), "qat_hw_sm3_do_offload"},
    {ERR_PACK(0, QAT_F_QAT_HW_SM3_FINAL, 0), "qat_hw_sm3_final"},
    {ERR_PACK(0, QAT_F_QAT_HW_SM3_SETUP_PARAM, 0), "qat_hw_sm3_setup_param"},
    {ERR_PACK(0, QAT_F_QAT_HW_SM3_UPDATE, 0), "qat_hw_sm3_update"},
    {ERR_PACK(0, QAT_F_QAT_INIT_OP_DONE, 0), "qat_init_op_done"},
    {ERR_PACK(0, QAT_F_QAT_INIT_OP_DONE_PIPE, 0), "qat_init_op_done_pipe"},
    {ERR_PACK(0, QAT_F_QAT_INIT_OP_DONE_RSA_CRT, 0),
     "qat_init_op_done_rsa_crt"},
    {ERR_PACK(0, QAT_F_QAT_MOD_EXP, 0), "qat_mod_exp"},
    {ERR_PACK(0, QAT_F_QAT_PKEY_ECX_DERIVE25519, 0),
     "qat_pkey_ecx_derive25519"},
    {ERR_PACK(0, QAT_F_QAT_PKEY_ECX_DERIVE448, 0), "qat_pkey_ecx_derive448"},
    {ERR_PACK(0, QAT_F_QAT_PKEY_ECX_KEYGEN, 0), "qat_pkey_ecx_keygen"},
    {ERR_PACK(0, QAT_F_QAT_PRF_PMETH, 0), "qat_prf_pmeth"},
    {ERR_PACK(0, QAT_F_QAT_PRF_TLS_DERIVE, 0), "qat_prf_tls_derive"},
    {ERR_PACK(0, QAT_F_QAT_REMAP_INSTANCES, 0), "qat_remap_instances"},
    {ERR_PACK(0, QAT_F_QAT_RSA_DECRYPT, 0), "qat_rsa_decrypt"},
    {ERR_PACK(0, QAT_F_QAT_RSA_ENCRYPT, 0), "qat_rsa_encrypt"},
    {ERR_PACK(0, QAT_F_QAT_RSA_PRIV_DEC, 0), "qat_rsa_priv_dec"},
    {ERR_PACK(0, QAT_F_QAT_RSA_PRIV_ENC, 0), "qat_rsa_priv_enc"},
    {ERR_PACK(0, QAT_F_QAT_RSA_PUB_DEC, 0), "qat_rsa_pub_dec"},
    {ERR_PACK(0, QAT_F_QAT_RSA_PUB_ENC, 0), "qat_rsa_pub_enc"},
    {ERR_PACK(0, QAT_F_QAT_SESSION_DATA_INIT, 0), "qat_session_data_init"},
    {ERR_PACK(0, QAT_F_QAT_SETUP_OP_PARAMS, 0), "qat_setup_op_params"},
    {ERR_PACK(0, QAT_F_QAT_SET_INSTANCE_FOR_THREAD, 0),
     "qat_set_instance_for_thread"},
    {ERR_PACK(0, QAT_F_QAT_SHA3_CLEANUP, 0), "qat_sha3_cleanup"},
    {ERR_PACK(0, QAT_F_QAT_SHA3_CTRL, 0), "qat_sha3_ctrl"},
    {ERR_PACK(0, QAT_F_QAT_SHA3_FINAL, 0), "qat_sha3_final"},
    {ERR_PACK(0, QAT_F_QAT_SHA3_SESSION_DATA_INIT, 0),
     "qat_sha3_session_data_init"},
    {ERR_PACK(0, QAT_F_QAT_SHA3_SETUP_PARAM, 0), "qat_sha3_setup_param"},
    {ERR_PACK(0, QAT_F_QAT_SHA3_UPDATE, 0), "qat_sha3_update"},
    {ERR_PACK(0, QAT_F_QAT_SM2_COMPUTE_Z_DIGEST, 0),
     "qat_sm2_compute_z_digest"},
    {ERR_PACK(0, QAT_F_QAT_SM2_COPY, 0), "qat_sm2_copy"},
    {ERR_PACK(0, QAT_F_QAT_SM2_CTRL, 0), "qat_sm2_ctrl"},
    {ERR_PACK(0, QAT_F_QAT_SM2_DIGEST_CUSTOM, 0), "qat_sm2_digest_custom"},
    {ERR_PACK(0, QAT_F_QAT_SM2_INIT, 0), "qat_sm2_init"},
    {ERR_PACK(0, QAT_F_QAT_SM2_SIGN, 0), "qat_sm2_sign"},
    {ERR_PACK(0, QAT_F_QAT_SM2_VERIFY, 0), "qat_sm2_verify"},
    {ERR_PACK(0, QAT_F_QAT_SM4_CBC_CLEANUP, 0), "qat_sm4_cbc_cleanup"},
    {ERR_PACK(0, QAT_F_QAT_SM4_CBC_DO_CIPHER, 0), "qat_sm4_cbc_do_cipher"},
    {ERR_PACK(0, QAT_F_QAT_SM4_CBC_INIT, 0), "qat_sm4_cbc_init"},
    {ERR_PACK(0, QAT_F_QAT_SW_INIT, 0), "qat_sw_init"},
    {ERR_PACK(0, QAT_F_QAT_SW_SM3_FINAL, 0), "qat_sw_sm3_final"},
    {ERR_PACK(0, QAT_F_QAT_SW_SM3_INIT, 0), "qat_sw_sm3_init"},
    {ERR_PACK(0, QAT_F_QAT_SW_SM3_UPDATE, 0), "qat_sw_sm3_update"},
    {ERR_PACK(0, QAT_F_QAT_SW_SM4_CBC_CIPHER, 0), "qat_sw_sm4_cbc_cipher"},
    {ERR_PACK(0, QAT_F_QAT_SW_SM4_CBC_CLEANUP, 0), "qat_sw_sm4_cbc_cleanup"},
    {ERR_PACK(0, QAT_F_QAT_SW_SM4_CBC_KEY_INIT, 0), "qat_sw_sm4_cbc_key_init"},
    {ERR_PACK(0, QAT_F_QAT_SW_SM4_CCM_CLEANUP, 0), "qat_sw_sm4_ccm_cleanup"},
    {ERR_PACK(0, QAT_F_QAT_SW_SM4_CCM_CTRL, 0), "qat_sw_sm4_ccm_ctrl"},
    {ERR_PACK(0, QAT_F_QAT_SW_SM4_CCM_DECRYPT, 0), "qat_sw_sm4_ccm_decrypt"},
    {ERR_PACK(0, QAT_F_QAT_SW_SM4_CCM_DO_CIPHER, 0),
     "qat_sw_sm4_ccm_do_cipher"},
    {ERR_PACK(0, QAT_F_QAT_SW_SM4_CCM_ENCRYPT, 0), "qat_sw_sm4_ccm_encrypt"},
    {ERR_PACK(0, QAT_F_QAT_SW_SM4_CCM_INIT, 0), "qat_sw_sm4_ccm_init"},
    {ERR_PACK(0, QAT_F_QAT_SW_SM4_GCM_CIPHER, 0), "qat_sw_sm4_gcm_cipher"},
    {ERR_PACK(0, QAT_F_QAT_SW_SM4_GCM_CLEANUP, 0), "qat_sw_sm4_gcm_cleanup"},
    {ERR_PACK(0, QAT_F_QAT_SW_SM4_GCM_CTRL, 0), "qat_sw_sm4_gcm_ctrl"},
    {ERR_PACK(0, QAT_F_QAT_SW_SM4_GCM_DECRYPT, 0), "qat_sw_sm4_gcm_decrypt"},
    {ERR_PACK(0, QAT_F_QAT_SW_SM4_GCM_ENCRYPT, 0), "qat_sw_sm4_gcm_encrypt"},
    {ERR_PACK(0, QAT_F_QAT_SW_SM4_GCM_INIT, 0), "qat_sw_sm4_gcm_init"},
    {ERR_PACK(0, QAT_F_QAT_SW_SM4_GCM_TLS_CIPHER, 0),
     "qat_sw_sm4_gcm_tls_cipher"},
    {ERR_PACK(0, QAT_F_QAT_VALIDATE_ECX_DERIVE, 0), "qat_validate_ecx_derive"},
    {ERR_PACK(0, QAT_F_QAT_X25519_PMETH, 0), "qat_x25519_pmeth"},
    {ERR_PACK(0, QAT_F_QAT_X448_PMETH, 0), "qat_x448_pmeth"},
    {ERR_PACK(0, QAT_F_SM2_COMPUTE_MSG_HASH, 0), "sm2_compute_msg_hash"},
    {ERR_PACK(0, QAT_F_VAESGCM_CIPHERS_CTRL, 0), "vaesgcm_ciphers_ctrl"},
    {ERR_PACK(0, QAT_F_VAESGCM_CIPHERS_DO_CIPHER, 0),
     "vaesgcm_ciphers_do_cipher"},
    {ERR_PACK(0, QAT_F_VAESGCM_CIPHERS_INIT, 0), "vaesgcm_ciphers_init"},
    {ERR_PACK(0, QAT_F_VAESGCM_INIT_GCM, 0), "vaesgcm_init_gcm"},
    {ERR_PACK(0, QAT_F_VAESGCM_INIT_IPSEC_MB_MGR, 0),
     "vaesgcm_init_ipsec_mb_mgr"},
    {ERR_PACK(0, QAT_F_VAESGCM_INIT_KEY, 0), "vaesgcm_init_key"},
    {0, NULL}
};

static ERR_STRING_DATA QAT_str_reasons[] = {
    {ERR_PACK(0, 0, QAT_R_AAD_INVALID_PTR), "aad invalid ptr"},
    {ERR_PACK(0, 0, QAT_R_AAD_LEN_INVALID), "aad len invalid"},
    {ERR_PACK(0, 0, QAT_R_AAD_MALLOC_FAILURE), "aad malloc failure"},
    {ERR_PACK(0, 0, QAT_R_ADD_M2_FAILURE), "add m2 failure"},
    {ERR_PACK(0, 0, QAT_R_ADJUST_DELTA_M1_M2_FAILURE),
    "adjust delta m1 m2 failure"},
    {ERR_PACK(0, 0, QAT_R_ALGO_TYPE_SUPPORTED), "algo type supported"},
    {ERR_PACK(0, 0, QAT_R_ALGO_TYPE_UNSUPPORTED), "algo type unsupported"},
    {ERR_PACK(0, 0, QAT_R_ALLOC_E_CHECK_FAILURE), "alloc e check failure"},
    {ERR_PACK(0, 0, QAT_R_ALLOC_MULTIBUFF_RSA_METH_FAILURE),
    "alloc multibuff rsa meth failure"},
    {ERR_PACK(0, 0, QAT_R_ALLOC_QAT_DSA_METH_FAILURE),
    "alloc qat dsa meth failure"},
    {ERR_PACK(0, 0, QAT_R_ALLOC_QAT_RSA_METH_FAILURE),
    "alloc qat rsa meth failure"},
    {ERR_PACK(0, 0, QAT_R_ALLOC_QAT_X25519_METH_FAILURE),
    "alloc qat x25519 meth failure"},
    {ERR_PACK(0, 0, QAT_R_ALLOC_QAT_X448_METH_FAILURE),
    "alloc qat x448 meth failure"},
    {ERR_PACK(0, 0, QAT_R_ALLOC_TAG_FAILURE), "alloc tag failure"},
    {ERR_PACK(0, 0, QAT_R_BAD_INPUT_PARAMS), "bad input params"},
    {ERR_PACK(0, 0, QAT_R_BAD_LENGTH), "bad length"},
    {ERR_PACK(0, 0, QAT_R_BAD_TLS_CLIENT_VERSION), "bad tls client version"},
    {ERR_PACK(0, 0, QAT_R_BN_LIB_FAILURE), "bn lib failure"},
    {ERR_PACK(0, 0, QAT_R_BUFFER_TOO_SMALL), "buffer too small"},
    {ERR_PACK(0, 0, QAT_R_BUF_CONV_FAIL), "buf conv fail"},
    {ERR_PACK(0, 0, QAT_R_CAPABILITY_FAILURE), "capability failure"},
    {ERR_PACK(0, 0, QAT_R_CBC_OPERATION_FAILED), "cbc operation failed"},
    {ERR_PACK(0, 0, QAT_R_CHACHAPOLY_CTX_NULL), "chachapoly ctx null"},
    {ERR_PACK(0, 0, QAT_R_CIPHER_DATA_NULL), "cipher data null"},
    {ERR_PACK(0, 0, QAT_R_CIPHER_OPERATION_FAILED), "cipher operation failed"},
    {ERR_PACK(0, 0, QAT_R_CLOSE_READFD_FAILURE), "close readfd failure"},
    {ERR_PACK(0, 0, QAT_R_COMPUTE_FAILURE), "compute failure"},
    {ERR_PACK(0, 0, QAT_R_COMPUTE_H_MULTIPLY_Q_FAILURE),
    "compute h multiply q failure"},
    {ERR_PACK(0, 0, QAT_R_CP_BUF_MALLOC_FAILURE), "cp buf malloc failure"},
    {ERR_PACK(0, 0, QAT_R_CQ_BUF_MALLOC_FAILURE), "cq buf malloc failure"},
    {ERR_PACK(0, 0, QAT_R_CREATE_FREELIST_QUEUE_FAILURE),
    "create freelist queue failure"},
    {ERR_PACK(0, 0, QAT_R_CTX_MALLOC_FAILURE), "ctx malloc failure"},
    {ERR_PACK(0, 0, QAT_R_CTX_NULL), "ctx null"},
    {ERR_PACK(0, 0, QAT_R_CURVE_COORDINATE_PARAMS_CONVERT_TO_FB_FAILURE),
    "curve coordinate params convert to fb failure"},
    {ERR_PACK(0, 0, QAT_R_CURVE_DOES_NOT_SUPPORT_SIGNING),
    "curve does not support signing"},
    {ERR_PACK(0, 0, QAT_R_C_MODULO_P_FAILURE), "c modulo p failure"},
    {ERR_PACK(0, 0, QAT_R_C_MODULO_Q_FAILURE), "c modulo q failure"},
    {ERR_PACK(0, 0, QAT_R_C_P_Q_CP_CQ_MALLOC_FAILURE),
    "c p q cp cq malloc failure"},
    {ERR_PACK(0, 0, QAT_R_DATA_TOO_LARGE_FOR_KEY_SIZE),
    "data too large for key size"},
    {ERR_PACK(0, 0, QAT_R_DEC_OP_DATA_MALLOC_FAILURE),
    "dec op data malloc failure"},
    {ERR_PACK(0, 0, QAT_R_DERIVE_FAILURE), "derive failure"},
    {ERR_PACK(0, 0, QAT_R_DGSTLEN_INVALID), "dgstlen invalid"},
    {ERR_PACK(0, 0, QAT_R_DGST_BN_CONV_FAILURE), "dgst bn conv failure"},
    {ERR_PACK(0, 0, QAT_R_DH_NULL), "dh null"},
    {ERR_PACK(0, 0, QAT_R_DINIT_OPERATION_FAILED), "dinit operation failed"},
    {ERR_PACK(0, 0, QAT_R_DLEN_INVALID), "dlen invalid"},
    {ERR_PACK(0, 0, QAT_R_DSA_DGST_NULL), "dsa dgst null"},
    {ERR_PACK(0, 0, QAT_R_DSA_DGST_SIG_NULL), "dsa dgst sig null"},
    {ERR_PACK(0, 0, QAT_R_ECDH_GET_AFFINE_COORD_FAILED),
    "ecdh get affine coord failed"},
    {ERR_PACK(0, 0, QAT_R_ECDH_GROUP_NULL), "ecdh group null"},
    {ERR_PACK(0, 0, QAT_R_ECDH_PRIVATE_KEY_NULL), "ecdh private key null"},
    {ERR_PACK(0, 0, QAT_R_ECDH_PRIV_KEY_PUB_KEY_NULL),
    "ecdh priv key pub key null"},
    {ERR_PACK(0, 0, QAT_R_ECDH_SET_AFFINE_COORD_FAILED),
    "ecdh set affine coord failed"},
    {ERR_PACK(0, 0, QAT_R_ECDH_UNKNOWN_FIELD_TYPE), "ecdh unknown field type"},
    {ERR_PACK(0, 0, QAT_R_ECDSA_MALLOC_FAILURE), "ecdsa malloc failure"},
    {ERR_PACK(0, 0, QAT_R_ECDSA_SIGN_FAILURE), "ecdsa sign failure"},
    {ERR_PACK(0, 0, QAT_R_ECDSA_SIGN_NULL), "ecdsa sign null"},
    {ERR_PACK(0, 0, QAT_R_ECDSA_SIGN_SETUP_FAILURE),
    "ecdsa sign setup failure"},
    {ERR_PACK(0, 0, QAT_R_ECDSA_SIG_MALLOC_FAILURE),
    "ecdsa sig malloc failure"},
    {ERR_PACK(0, 0, QAT_R_ECDSA_SIG_SET_R_S_FAILURE),
    "ecdsa sig set r s failure"},
    {ERR_PACK(0, 0, QAT_R_ECDSA_VERIFY_FAILURE), "ecdsa verify failure"},
    {ERR_PACK(0, 0, QAT_R_ECDSA_VERIFY_NULL), "ecdsa verify null"},
    {ERR_PACK(0, 0, QAT_R_ECKEY_GROUP_PUBKEY_SIG_NULL),
    "eckey group pubkey sig null"},
    {ERR_PACK(0, 0, QAT_R_EC_KEY_GROUP_PRIV_KEY_NULL),
    "ec key group priv key null"},
    {ERR_PACK(0, 0, QAT_R_EC_LIB), "ec lib"},
    {ERR_PACK(0, 0, QAT_R_EC_POINT_RETRIEVE_FAILURE),
    "ec point retrieve failure"},
    {ERR_PACK(0, 0, QAT_R_EINIT_OPERATION_FAILED), "einit operation failed"},
    {ERR_PACK(0, 0, QAT_R_ENC_OP_DATA_MALLOC_FAILURE),
    "enc op data malloc failure"},
    {ERR_PACK(0, 0, QAT_R_ENGINE_CTRL_CMD_FAILURE), "engine ctrl cmd failure"},
    {ERR_PACK(0, 0, QAT_R_ENGINE_INIT_FAILURE), "engine init failure"},
    {ERR_PACK(0, 0, QAT_R_ENGINE_NULL), "engine null"},
    {ERR_PACK(0, 0, QAT_R_EPOLL_CREATE_FAILURE), "epoll create failure"},
    {ERR_PACK(0, 0, QAT_R_EPOLL_CTL_FAILURE), "epoll ctl failure"},
    {ERR_PACK(0, 0, QAT_R_EVENTS_MALLOC_FAILURE), "events malloc failure"},
    {ERR_PACK(0, 0, QAT_R_EVP_LIB), "evp lib"},
    {ERR_PACK(0, 0, QAT_R_FAILED_TO_DECRYPT), "failed to decrypt"},
    {ERR_PACK(0, 0, QAT_R_FAILED_TO_GET_PARAMETER), "failed to get parameter"},
    {ERR_PACK(0, 0, QAT_R_FAILED_TO_SET_PARAMETER), "failed to set parameter"},
    {ERR_PACK(0, 0, QAT_R_FALLBACK_INIT_FAILURE), "fallback init failure"},
    {ERR_PACK(0, 0, QAT_R_FALLBACK_POINTER_NULL), "fallback pointer null"},
    {ERR_PACK(0, 0, QAT_R_FIELD_SIZE_INVALID), "field size invalid"},
    {ERR_PACK(0, 0, QAT_R_FREE_DH_METH_FAILURE), "free dh meth failure"},
    {ERR_PACK(0, 0, QAT_R_FREE_MULTIBUFF_RSA_METH_FAILURE),
    "free multibuff rsa meth failure"},
    {ERR_PACK(0, 0, QAT_R_FREE_QAT_DSA_METH_FAILURE),
    "free qat dsa meth failure"},
    {ERR_PACK(0, 0, QAT_R_FREE_QAT_RSA_METH_FAILURE),
    "free qat rsa meth failure"},
    {ERR_PACK(0, 0, QAT_R_GCM_TAG_VERIFY_FAILURE), "gcm tag verify failure"},
    {ERR_PACK(0, 0, QAT_R_GET_COFACTOR_FAILURE), "get cofactor failure"},
    {ERR_PACK(0, 0, QAT_R_GET_FILE_DESCRIPTOR_FAILURE),
    "get file descriptor failure"},
    {ERR_PACK(0, 0, QAT_R_GET_GROUP_FAILURE), "get group failure"},
    {ERR_PACK(0, 0, QAT_R_GET_INSTANCE_FAILURE), "get instance failure"},
    {ERR_PACK(0, 0, QAT_R_GET_INSTANCE_INFO_FAILURE),
    "get instance info failure"},
    {ERR_PACK(0, 0, QAT_R_GET_NUM_INSTANCE_FAILURE),
    "get num instance failure"},
    {ERR_PACK(0, 0, QAT_R_GET_ORDER_FAILURE), "get order failure"},
    {ERR_PACK(0, 0, QAT_R_GET_PQG_FAILURE), "get pqg failure"},
    {ERR_PACK(0, 0, QAT_R_GET_PRIV_KEY_FAILURE), "get priv key failure"},
    {ERR_PACK(0, 0, QAT_R_GROUP_NULL), "group null"},
    {ERR_PACK(0, 0, QAT_R_GROUP_PRIV_KEY_PUB_KEY_NULL),
    "group priv key pub key null"},
    {ERR_PACK(0, 0, QAT_R_GROUP_PUB_KEY_NULL), "group pub key null"},
    {ERR_PACK(0, 0, QAT_R_H_CONVERT_TO_FB_FAILURE), "h convert to fb failure"},
    {ERR_PACK(0, 0, QAT_R_ICP_SAL_USERSTART_FAIL), "icp sal userstart fail"},
    {ERR_PACK(0, 0, QAT_R_ID_TOO_LARGE), "id too large"},
    {ERR_PACK(0, 0, QAT_R_INITIALIZE_CTX_FAILURE), "initialize ctx failure"},
    {ERR_PACK(0, 0, QAT_R_INIT_FAIL), "init fail"},
    {ERR_PACK(0, 0, QAT_R_INIT_FAILURE), "init failure"},
    {ERR_PACK(0, 0, QAT_R_INPUT_DATA_MALLOC_FAILURE),
    "input data malloc failure"},
    {ERR_PACK(0, 0, QAT_R_INPUT_PARAM_INVALID), "input param invalid"},
    {ERR_PACK(0, 0, QAT_R_INSTANCE_HANDLE_MALLOC_FAILURE),
    "instance handle malloc failure"},
    {ERR_PACK(0, 0, QAT_R_INSTANCE_UNAVAILABLE), "instance unavailable"},
    {ERR_PACK(0, 0, QAT_R_INTERNAL_ERROR), "internal error"},
    {ERR_PACK(0, 0, QAT_R_INVALID_AAD), "invalid aad"},
    {ERR_PACK(0, 0, QAT_R_INVALID_ATTACHED_TAG), "invalid attached tag"},
    {ERR_PACK(0, 0, QAT_R_INVALID_CTRL_TYPE), "invalid ctrl type"},
    {ERR_PACK(0, 0, QAT_R_INVALID_CURVE), "invalid curve"},
    {ERR_PACK(0, 0, QAT_R_INVALID_DATA), "invalid data"},
    {ERR_PACK(0, 0, QAT_R_INVALID_DIGEST), "invalid digest"},
    {ERR_PACK(0, 0, QAT_R_INVALID_HASH_DATA), "invalid hash data"},
    {ERR_PACK(0, 0, QAT_R_INVALID_INPUT), "invalid input"},
    {ERR_PACK(0, 0, QAT_R_INVALID_INPUT_LENGTH), "invalid input length"},
    {ERR_PACK(0, 0, QAT_R_INVALID_INPUT_PARAMETER), "invalid input parameter"},
    {ERR_PACK(0, 0, QAT_R_INVALID_IVLEN), "invalid ivlen"},
    {ERR_PACK(0, 0, QAT_R_INVALID_IV_LENGTH), "invalid iv length"},
    {ERR_PACK(0, 0, QAT_R_INVALID_KEY), "invalid key"},
    {ERR_PACK(0, 0, QAT_R_INVALID_KEY_LENGTH), "invalid key length"},
    {ERR_PACK(0, 0, QAT_R_INVALID_L), "invalid l"},
    {ERR_PACK(0, 0, QAT_R_INVALID_LEN), "invalid len"},
    {ERR_PACK(0, 0, QAT_R_INVALID_LENGTH), "invalid length"},
    {ERR_PACK(0, 0, QAT_R_INVALID_PEER_KEY), "invalid peer key"},
    {ERR_PACK(0, 0, QAT_R_INVALID_PRIVATE_KEY), "invalid private key"},
    {ERR_PACK(0, 0, QAT_R_INVALID_PTR), "invalid ptr"},
    {ERR_PACK(0, 0, QAT_R_INVALID_PTR_IV), "invalid ptr iv"},
    {ERR_PACK(0, 0, QAT_R_INVALID_PUB_KEY), "invalid pub key"},
    {ERR_PACK(0, 0, QAT_R_INVALID_QCTX_MEMORY), "invalid qctx memory"},
    {ERR_PACK(0, 0, QAT_R_INVALID_TAG), "invalid tag"},
    {ERR_PACK(0, 0, QAT_R_INVALID_TAG_LEN), "invalid tag len"},
    {ERR_PACK(0, 0, QAT_R_INVALID_TYPE), "invalid type"},
    {ERR_PACK(0, 0, QAT_R_IN_KINV_CONVERT_TO_FB_FAILURE),
    "in kinv convert to fb failure"},
    {ERR_PACK(0, 0, QAT_R_IN_R_CONVERT_TO_FB_FAILURE),
    "in r convert to fb failure"},
    {ERR_PACK(0, 0, QAT_R_IPSEC_MGR_NULL), "ipsec mgr null"},
    {ERR_PACK(0, 0, QAT_R_IV_ALLOC_FAILURE), "iv alloc failure"},
    {ERR_PACK(0, 0, QAT_R_IV_GEN_INVALID), "iv gen invalid"},
    {ERR_PACK(0, 0, QAT_R_IV_INVALID), "iv invalid"},
    {ERR_PACK(0, 0, QAT_R_IV_LEN_NOT_SUPPORTED), "iv len not supported"},
    {ERR_PACK(0, 0, QAT_R_IV_MALLOC_FAILURE), "iv malloc failure"},
    {ERR_PACK(0, 0, QAT_R_IV_NOTSET), "iv notset"},
    {ERR_PACK(0, 0, QAT_R_IV_NULL_PTR_INVALID), "iv null ptr invalid"},
    {ERR_PACK(0, 0, QAT_R_IV_NVALID), "iv nvalid"},
    {ERR_PACK(0, 0, QAT_R_KEYGEN_FAILURE), "keygen failure"},
    {ERR_PACK(0, 0, QAT_R_KEYS_NOT_SET), "keys not set"},
    {ERR_PACK(0, 0, QAT_R_KEY_IV_NOT_SET), "key iv not set"},
    {ERR_PACK(0, 0, QAT_R_KEY_MALLOC_FAILURE), "key malloc failure"},
    {ERR_PACK(0, 0, QAT_R_KEY_NOTSET), "key notset"},
    {ERR_PACK(0, 0, QAT_R_KEY_NULL), "key null"},
    {ERR_PACK(0, 0, QAT_R_KEY_SIZE_TOO_SMALL), "key size too small"},
    {ERR_PACK(0, 0, QAT_R_K_ALLOCATE_FAILURE), "k allocate failure"},
    {ERR_PACK(0, 0, QAT_R_K_CONVERT_TO_FB_FAILURE), "k convert to fb failure"},
    {ERR_PACK(0, 0, QAT_R_K_E_ORDER_MALLOC_FAILURE),
    "k e order malloc failure"},
    {ERR_PACK(0, 0, QAT_R_K_ORDER_CONVERT_TO_FB_FAILURE),
    "k order convert to fb failure"},
    {ERR_PACK(0, 0, QAT_R_K_RAND_GENERATE_FAILURE), "k rand generate failure"},
    {ERR_PACK(0, 0, QAT_R_M1_DEDUCT_M2_FAILURE), "m1 deduct m2 failure"},
    {ERR_PACK(0, 0, QAT_R_M1_M2_P_Q_QINV_TMP_MALLOC_FAILURE),
    "m1 m2 p q qinv tmp malloc failure"},
    {ERR_PACK(0, 0, QAT_R_MALLOC_FAILURE), "malloc failure"},
    {ERR_PACK(0, 0, QAT_R_MAX_RETRIES_EXCEEDED), "max retries exceeded"},
    {ERR_PACK(0, 0, QAT_R_MB_FREE_EC_METHOD_FAILURE),
    "mb free ec method failure"},
    {ERR_PACK(0, 0, QAT_R_MB_GET_EC_METHOD_MALLOC_FAILURE),
    "mb get ec method malloc failure"},
    {ERR_PACK(0, 0, QAT_R_MODULO_P_FAILURE), "modulo p failure"},
    {ERR_PACK(0, 0, QAT_R_MOD_GET_NEXT_INST_FAIL), "mod get next inst fail"},
    {ERR_PACK(0, 0, QAT_R_MOD_LN_MOD_EXP_FAIL), "mod ln mod exp fail"},
    {ERR_PACK(0, 0, QAT_R_MOD_SETUP_ASYNC_EVENT_FAIL),
    "mod setup async event fail"},
    {ERR_PACK(0, 0, QAT_R_MSGLEN_NOTSET), "msglen notset"},
    {ERR_PACK(0, 0, QAT_R_MULTIPLY_QINV_FAILURE), "multiply qinv failure"},
    {ERR_PACK(0, 0, QAT_R_NID_NOT_SUPPORTED), "nid not supported"},
    {ERR_PACK(0, 0, QAT_R_NO_PARAMETERS_SET), "no parameters set"},
    {ERR_PACK(0, 0, QAT_R_N_E_CONVERT_TO_FB_FAILURE),
    "n e convert to fb failure"},
    {ERR_PACK(0, 0, QAT_R_N_E_NULL), "n e null"},
    {ERR_PACK(0, 0, QAT_R_OP1_BASE_PDATA_MALLOC_FAILURE),
    "op1 base pdata malloc failure"},
    {ERR_PACK(0, 0, QAT_R_OP2_BASE_PDATA_MALLOC_FAILURE),
    "op2 base pdata malloc failure"},
    {ERR_PACK(0, 0, QAT_R_OPDATA_A_PDATA_MALLOC_FAILURE),
    "opdata a pdata malloc failure"},
    {ERR_PACK(0, 0, QAT_R_OPDATA_DATA_MALLOC_FAILURE),
    "opdata data malloc failure"},
    {ERR_PACK(0, 0, QAT_R_OPDATA_D_MALLOC_FAILURE), "opdata d malloc failure"},
    {ERR_PACK(0, 0, QAT_R_OPDATA_E_MALLOC_FAILURE), "opdata e malloc failure"},
    {ERR_PACK(0, 0, QAT_R_OPDATA_K_MALLOC_FAILURE), "opdata k malloc failure"},
    {ERR_PACK(0, 0, QAT_R_OPDATA_MALLOC_FAILURE), "opdata malloc failure"},
    {ERR_PACK(0, 0, QAT_R_OPDATA_PDATA_MALLOC_FAILURE),
    "opdata pdata malloc failure"},
    {ERR_PACK(0, 0, QAT_R_OPDATA_ZPDATA_MALLOC_FAILURE),
    "opdata zpdata malloc failure"},
    {ERR_PACK(0, 0, QAT_R_OPDCRT_NULL), "opdcrt null"},
    {ERR_PACK(0, 0, QAT_R_OPDONE_NULL), "opdone null"},
    {ERR_PACK(0, 0, QAT_R_OPDPIPE_NULL), "opdpipe null"},
    {ERR_PACK(0, 0, QAT_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE),
    "operation not supported for this keytype"},
    {ERR_PACK(0, 0, QAT_R_ORDER_MALLOC_FAILURE), "order malloc failure"},
    {ERR_PACK(0, 0, QAT_R_OUT1_PDATA_MALLOC_FAILURE),
    "out1 pdata malloc failure"},
    {ERR_PACK(0, 0, QAT_R_OUT2_PDATA_MALLOC_FAILURE),
    "out2 pdata malloc failure"},
    {ERR_PACK(0, 0, QAT_R_OUTPUT_BUFFER_TOO_SMALL), "output buffer too small"},
    {ERR_PACK(0, 0, QAT_R_OUTPUT_BUF_MALLOC_FAILURE),
    "output buf malloc failure"},
    {ERR_PACK(0, 0, QAT_R_OUTPUT_BUF_PDATA_MALLOC_FAILURE),
    "output buf pdata malloc failure"},
    {ERR_PACK(0, 0, QAT_R_OUTX_MALLOC_FAILURE), "outx malloc failure"},
    {ERR_PACK(0, 0, QAT_R_OUTX_OUTY_LEN_NULL), "outx outy len null"},
    {ERR_PACK(0, 0, QAT_R_OUTY_MALLOC_FAILURE), "outy malloc failure"},
    {ERR_PACK(0, 0, QAT_R_PADDING_UNKNOWN), "padding unknown"},
    {ERR_PACK(0, 0, QAT_R_PKCS_DECODING_ERROR), "pkcs decoding error"},
    {ERR_PACK(0, 0, QAT_R_POLLING_THREAD_CREATE_FAILURE),
    "polling thread create failure"},
    {ERR_PACK(0, 0, QAT_R_POLLING_THREAD_SEM_INIT_FAILURE),
    "polling thread sem init failure"},
    {ERR_PACK(0, 0, QAT_R_POLLING_THREAD_SIGMASK_FAILURE),
    "polling thread sigmask failure"},
    {ERR_PACK(0, 0, QAT_R_POLL_INSTANCE_FAILURE), "poll instance failure"},
    {ERR_PACK(0, 0, QAT_R_POPDATA_A_PDATA_MALLOC_FAILURE),
    "popdata a pdata malloc failure"},
    {ERR_PACK(0, 0, QAT_R_POPDATA_MALLOC_FAILURE), "popdata malloc failure"},
    {ERR_PACK(0, 0, QAT_R_POPDATA_PCURVE_MALLOC_FAILURE),
    "popdata pcurve malloc failure"},
    {ERR_PACK(0, 0, QAT_R_PPV_MALLOC_FAILURE), "ppv malloc failure"},
    {ERR_PACK(0, 0, QAT_R_PPV_PDATA_MALLOC_FAILURE),
    "ppv pdata malloc failure"},
    {ERR_PACK(0, 0, QAT_R_PRESULTR_MALLOC_FAILURE), "presultr malloc failure"},
    {ERR_PACK(0, 0, QAT_R_PRESULTR_PDATA_MALLOC_FAILURE),
    "presultr pdata malloc failure"},
    {ERR_PACK(0, 0, QAT_R_PRESULTS_MALLOC_FAILURE), "presults malloc failure"},
    {ERR_PACK(0, 0, QAT_R_PRESULTS_PDATA_MALLOC_FAILURE),
    "presults pdata malloc failure"},
    {ERR_PACK(0, 0, QAT_R_PRESULTX_MALLOC_FAILURE), "presultx malloc failure"},
    {ERR_PACK(0, 0, QAT_R_PRESULTX_PDATA_MALLOC_FAILURE),
    "presultx pdata malloc failure"},
    {ERR_PACK(0, 0, QAT_R_PRESULTY_LENGTH_CHECK_FAILURE),
    "presulty length check failure"},
    {ERR_PACK(0, 0, QAT_R_PRESULTY_MALLOC_FAILURE), "presulty malloc failure"},
    {ERR_PACK(0, 0, QAT_R_PRESULTY_PDATA_MALLOC_FAILURE),
    "presulty pdata malloc failure"},
    {ERR_PACK(0, 0, QAT_R_PRIV_KEY_DUPLICATE_FAILURE),
    "priv key duplicate failure"},
    {ERR_PACK(0, 0, QAT_R_PRIV_KEY_K_E_D_CONVERT_TO_FB_FAILURE),
    "priv key k e d convert to fb failure"},
    {ERR_PACK(0, 0, QAT_R_PRIV_KEY_MALLOC_FAILURE), "priv key malloc failure"},
    {ERR_PACK(0, 0, QAT_R_PRIV_KEY_M_XG_YG_A_B_P_CONVERT_TO_FB_FAILURE),
    "priv key m xg yg a b p convert to fb failure"},
    {ERR_PACK(0, 0, QAT_R_PRIV_KEY_NULL), "priv key null"},
    {ERR_PACK(0, 0, QAT_R_PRIV_KEY_RAND_GENERATE_FAILURE),
    "priv key rand generate failure"},
    {ERR_PACK(0, 0, QAT_R_PRIV_KEY_XG_YG_A_B_P_CONVERT_TO_FB_FAILURE),
    "priv key xg yg a b p convert to fb failure"},
    {ERR_PACK(0, 0, QAT_R_PRIV_KEY_XP_YP_A_B_P_CONVERT_TO_FB_FAILURE),
    "priv key xp yp a b p convert to fb failure"},
    {ERR_PACK(0, 0, QAT_R_PTHREAD_CREATE_FAILURE), "pthread create failure"},
    {ERR_PACK(0, 0, QAT_R_PTHREAD_GETAFFINITY_FAILURE),
    "pthread getaffinity failure"},
    {ERR_PACK(0, 0, QAT_R_PTHREAD_JOIN_FAILURE), "pthread join failure"},
    {ERR_PACK(0, 0, QAT_R_PTHREAD_SETAFFINITY_FAILURE),
    "pthread setaffinity failure"},
    {ERR_PACK(0, 0, QAT_R_PUB_KEY_DUPLICATE_FAILURE),
    "pub key duplicate failure"},
    {ERR_PACK(0, 0, QAT_R_PUB_KEY_MALLOC_FAILURE), "pub key malloc failure"},
    {ERR_PACK(0, 0, QAT_R_PUB_KEY_NULL), "pub key null"},
    {ERR_PACK(0, 0, QAT_R_P_A_B_XG_YG_MALLOC_FAILURE),
    "p a b xg yg malloc failure"},
    {ERR_PACK(0, 0, QAT_R_P_A_B_XG_YG_M_K_R_ORDER_MALLOC_FAILURE),
    "p a b xg yg m k r order malloc failure"},
    {ERR_PACK(0, 0, QAT_R_P_A_B_XG_YG_XP_YP_M_ORDER_FAILURE),
    "p a b xg yg xp yp m order failure"},
    {ERR_PACK(0, 0, QAT_R_P_A_B_XP_YP_FAILURE), "p a b xp yp failure"},
    {ERR_PACK(0, 0, QAT_R_P_A_B_XP_YP_MALLOC_FAILURE),
    "p a b xp yp malloc failure"},
    {ERR_PACK(0, 0, QAT_R_P_G_PRIV_KEY_CONVERT_TO_FB_FAILURE),
    "p g priv key convert to fb failure"},
    {ERR_PACK(0, 0, QAT_R_P_PUB_PRIV_KEY_CONVERT_TO_FB_FAILURE),
    "p pub priv key convert to fb failure"},
    {ERR_PACK(0, 0, QAT_R_P_Q_DMP_DMQ_CONVERT_TO_FB_FAILURE),
    "p q dmp dmq convert to fb failure"},
    {ERR_PACK(0, 0, QAT_R_P_Q_DMP_DMQ_IQMP_NULL), "p q dmp dmq iqmp null"},
    {ERR_PACK(0, 0, QAT_R_P_Q_G_NULL), "p q g null"},
    {ERR_PACK(0, 0, QAT_R_P_Q_G_X_K_CONVERT_TO_FB_FAILURE),
    "p q g x k convert to fb failure"},
    {ERR_PACK(0, 0, QAT_R_P_Q_G_Y_Z_R_S_CONVERT_TO_FB_FAILURE),
    "p q g y z r s convert to fb failure"},
    {ERR_PACK(0, 0, QAT_R_QAT_ALLOC_DH_METH_FAILURE),
    "qat alloc dh meth failure"},
    {ERR_PACK(0, 0, QAT_R_QAT_CREATE_ENGINE_FAILURE),
    "qat create engine failure"},
    {ERR_PACK(0, 0, QAT_R_QAT_ECDSA_DO_SIGN_FAIL), "qat ecdsa do sign fail"},
    {ERR_PACK(0, 0, QAT_R_QAT_FREE_EC_METHOD_FAILURE),
    "qat free ec method failure"},
    {ERR_PACK(0, 0, QAT_R_QAT_GET_EC_METHOD_MALLOC_FAILURE),
    "qat get ec method malloc failure"},
    {ERR_PACK(0, 0, QAT_R_QAT_SET_DH_METH_FAILURE), "qat set dh meth failure"},
    {ERR_PACK(0, 0, QAT_R_QCTX_CTX_NULL), "qctx ctx null"},
    {ERR_PACK(0, 0, QAT_R_QCTX_NULL), "qctx null"},
    {ERR_PACK(0, 0, QAT_R_RAND_BYTES_FAILURE), "rand bytes failure"},
    {ERR_PACK(0, 0, QAT_R_RAND_FAILURE), "rand failure"},
    {ERR_PACK(0, 0, QAT_R_RAND_GENERATE_FAILURE), "rand generate failure"},
    {ERR_PACK(0, 0, QAT_R_RESULT_PDATA_ALLOC_FAIL), "result pdata alloc fail"},
    {ERR_PACK(0, 0, QAT_R_RETRIEVE_EC_POINT_FAILURE),
    "retrieve ec point failure"},
    {ERR_PACK(0, 0, QAT_R_RETRIEVE_ORDER_FAILURE), "retrieve order failure"},
    {ERR_PACK(0, 0, QAT_R_RSA_FROM_TO_NULL), "rsa from to null"},
    {ERR_PACK(0, 0, QAT_R_RSA_OUTPUT_BUF_PDATA_MALLOC_FAILURE),
    "rsa output buf pdata malloc failure"},
    {ERR_PACK(0, 0, QAT_R_R_Q_COMPARE_FAILURE), "r q compare failure"},
    {ERR_PACK(0, 0, QAT_R_SECRET_KEY_MALLOC_FAILURE),
    "secret key malloc failure"},
    {ERR_PACK(0, 0, QAT_R_SECRET_KEY_PDATA_MALLOC_FAILURE),
    "secret key pdata malloc failure"},
    {ERR_PACK(0, 0, QAT_R_SEM_POST_FAILURE), "sem post failure"},
    {ERR_PACK(0, 0, QAT_R_SETUP_ASYNC_EVENT_FAILURE),
    "setup async event failure"},
    {ERR_PACK(0, 0, QAT_R_SET_ADDRESS_TRANSLATION_FAILURE),
    "set address translation failure"},
    {ERR_PACK(0, 0, QAT_R_SET_FILE_DESCRIPTOR_NONBLOCKING_FAILURE),
    "set file descriptor nonblocking failure"},
    {ERR_PACK(0, 0, QAT_R_SET_INSTANCE_FAILURE), "set instance failure"},
    {ERR_PACK(0, 0, QAT_R_SET_MULTIBUFF_RSA_METH_FAILURE),
    "set multibuff rsa meth failure"},
    {ERR_PACK(0, 0, QAT_R_SET_NOTIFICATION_CALLBACK_FAILURE),
    "set notification callback failure"},
    {ERR_PACK(0, 0, QAT_R_SET_POLLING_THREAD_AFFINITY_FAILURE),
    "set polling thread affinity failure"},
    {ERR_PACK(0, 0, QAT_R_SET_PRIV_KEY_FAILURE), "set priv key failure"},
    {ERR_PACK(0, 0, QAT_R_SET_QAT_DSA_METH_FAILURE),
    "set qat dsa meth failure"},
    {ERR_PACK(0, 0, QAT_R_SET_QAT_RSA_METH_FAILURE),
    "set qat rsa meth failure"},
    {ERR_PACK(0, 0, QAT_R_SET_TAG_INVALID_OP), "set tag invalid op"},
    {ERR_PACK(0, 0, QAT_R_SHA3_CTX_NULL), "sha3 ctx null"},
    {ERR_PACK(0, 0, QAT_R_SIG_GET_R_S_FAILURE), "sig get r s failure"},
    {ERR_PACK(0, 0, QAT_R_SIG_MALLOC_FAILURE), "sig malloc failure"},
    {ERR_PACK(0, 0, QAT_R_SM2_BAD_SIGNATURE), "sm2 bad signature"},
    {ERR_PACK(0, 0, QAT_R_SM2_ID_TOO_LARGE), "sm2 id too large"},
    {ERR_PACK(0, 0, QAT_R_SM2_INVALID_DIGEST), "sm2 invalid digest"},
    {ERR_PACK(0, 0, QAT_R_SM2_SIGN_NULL), "sm2 sign null"},
    {ERR_PACK(0, 0, QAT_R_SM2_SIG_GEN_MALLOC_FAILURE),
    "sm2 sig gen malloc failure"},
    {ERR_PACK(0, 0, QAT_R_SM2_SIG_MALLOC_FAILURE), "sm2 sig malloc failure"},
    {ERR_PACK(0, 0, QAT_R_SM2_SIG_SET_R_S_FAILURE), "sm2 sig set r s failure"},
    {ERR_PACK(0, 0, QAT_R_SM2_VERIFY_NULL), "sm2 verify null"},
    {ERR_PACK(0, 0, QAT_R_SM3_CTX_NULL), "sm3 ctx null"},
    {ERR_PACK(0, 0, QAT_R_SM3_FINAL_FAILURE), "sm3 final failure"},
    {ERR_PACK(0, 0, QAT_R_SM3_INIT_FAILURE), "sm3 init failure"},
    {ERR_PACK(0, 0, QAT_R_SM3_UPDATE_FAILURE), "sm3 update failure"},
    {ERR_PACK(0, 0, QAT_R_SM4_CCM_DECRYPT_FAILURE), "sm4 ccm decrypt failure"},
    {ERR_PACK(0, 0, QAT_R_SM4_GCM_DECRYPT_FAILURE), "sm4 gcm decrypt failure"},
    {ERR_PACK(0, 0, QAT_R_SM4_GCM_ENCRYPT_FAILURE), "sm4 gcm encrypt failure"},
    {ERR_PACK(0, 0, QAT_R_SM4_GET_INSTANCE_FAILED), "sm4 get instance failed"},
    {ERR_PACK(0, 0, QAT_R_SM4_GET_SESSIONCTX_SIZE_FAILED),
    "sm4 get sessionctx size failed"},
    {ERR_PACK(0, 0, QAT_R_SM4_MALLOC_FAILED), "sm4 malloc failed"},
    {ERR_PACK(0, 0, QAT_R_SM4_NO_QAT_INSTANCE_AVAILABLE),
    "sm4 no qat instance available"},
    {ERR_PACK(0, 0, QAT_R_SM4_NULL_CKEY), "sm4 null ckey"},
    {ERR_PACK(0, 0, QAT_R_SM4_NULL_CTX), "sm4 null ctx"},
    {ERR_PACK(0, 0, QAT_R_SM4_NULL_CTX_OR_KEY), "sm4 null ctx or key"},
    {ERR_PACK(0, 0, QAT_R_SM4_NULL_POINTER), "sm4 null pointer"},
    {ERR_PACK(0, 0, QAT_R_SM4_NULL_QCTX), "sm4 null qctx"},
    {ERR_PACK(0, 0, QAT_R_SM4_QAT_CONTEXT_NOT_INITIALISED),
    "sm4 qat context not initialised"},
    {ERR_PACK(0, 0, QAT_R_SM4_QAT_INITSESSION_FAILED),
    "sm4 qat initsession failed"},
    {ERR_PACK(0, 0, QAT_R_SM4_QAT_SUBMIT_REQUEST_FAILED),
    "sm4 qat submit request failed"},
    {ERR_PACK(0, 0, QAT_R_SM4_REMOVE_SESSION_FAILED),
    "sm4 remove session failed"},
    {ERR_PACK(0, 0, QAT_R_SM4_SETUP_META_DATA_FAILED),
    "sm4 setup meta data failed"},
    {ERR_PACK(0, 0, QAT_R_SM4_SET_METHODS_FAILED), "sm4 set methods failed"},
    {ERR_PACK(0, 0, QAT_R_SSD_MALLOC_FAILURE), "ssd malloc failure"},
    {ERR_PACK(0, 0, QAT_R_SSD_NULL), "ssd null"},
    {ERR_PACK(0, 0, QAT_R_START_INSTANCE_FAILURE), "start instance failure"},
    {ERR_PACK(0, 0, QAT_R_STOP_INSTANCE_FAILURE), "stop instance failure"},
    {ERR_PACK(0, 0, QAT_R_SW_GET_COMPUTE_KEY_PFUNC_NULL),
    "sw get compute key pfunc null"},
    {ERR_PACK(0, 0, QAT_R_SW_GET_KEYGEN_PFUNC_NULL),
    "sw get keygen pfunc null"},
    {ERR_PACK(0, 0, QAT_R_SW_GET_SIGN_PFUNC_NULL), "sw get sign pfunc null"},
    {ERR_PACK(0, 0, QAT_R_SW_GET_SIGN_SETUP_PFUNC_NULL),
    "sw get sign setup pfunc null"},
    {ERR_PACK(0, 0, QAT_R_SW_GET_SIGN_SIG_PFUNC_NULL),
    "sw get sign sig pfunc null"},
    {ERR_PACK(0, 0, QAT_R_SW_GET_VERIFY_PFUNC_NULL),
    "sw get verify pfunc null"},
    {ERR_PACK(0, 0, QAT_R_SW_GET_VERIFY_SIG_PFUNC_NULL),
    "sw get verify sig pfunc null"},
    {ERR_PACK(0, 0, QAT_R_SW_METHOD_NULL), "sw method null"},
    {ERR_PACK(0, 0, QAT_R_S_NULL), "s null"},
    {ERR_PACK(0, 0, QAT_R_S_Q_COMPARE_FAILURE), "s q compare failure"},
    {ERR_PACK(0, 0, QAT_R_TAG_NOTSET), "tag notset"},
    {ERR_PACK(0, 0, QAT_R_TAG_NOT_NEEDED), "tag not needed"},
    {ERR_PACK(0, 0, QAT_R_UNKNOWN_PADDING), "unknown padding"},
    {ERR_PACK(0, 0, QAT_R_UNKNOWN_PADDING_TYPE), "unknown padding type"},
    {ERR_PACK(0, 0, QAT_R_WAKE_PAUSE_JOB_FAILURE), "wake pause job failure"},
    {ERR_PACK(0, 0, QAT_R_X_Y_E_MALLOC_FAILURE), "x y e malloc failure"},
    {ERR_PACK(0, 0, QAT_R_X_Y_TX_TY_BN_MALLOC_FAILURE),
    "x y tx ty bn malloc failure"},
    {ERR_PACK(0, 0, QAT_R_X_Y_Z_MALLOC_FAILURE), "x y z malloc failure"},
    {ERR_PACK(0, 0, QAT_R_ZALLOC_FAILURE), "zalloc failure"},
    {ERR_PACK(0, 0, QAT_R_Z_ALLOCATE_FAILURE), "z allocate failure"},
    {0, NULL}
};

#endif

static int lib_code = 0;
static int error_loaded = 0;

int ERR_load_QAT_strings(void)
{
    if (lib_code == 0)
        lib_code = ERR_get_next_error_library();

    if (!error_loaded) {
#ifndef OPENSSL_NO_ERR
        ERR_load_strings(lib_code, QAT_str_functs);
        ERR_load_strings(lib_code, QAT_str_reasons);
#endif
        error_loaded = 1;
    }
    return 1;
}

void ERR_unload_QAT_strings(void)
{
    if (error_loaded) {
#ifndef OPENSSL_NO_ERR
        ERR_unload_strings(lib_code, QAT_str_functs);
        ERR_unload_strings(lib_code, QAT_str_reasons);
#endif
        error_loaded = 0;
    }
}

void ERR_QAT_error(int function, int reason, char *file, int line)
{
    if (lib_code == 0)
        lib_code = ERR_get_next_error_library();
    ERR_PUT_error(lib_code, function, reason, file, line);
}
